package com.shujia.day12;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/*
    需求：遍历集合，当遇到mango的时候，向集合中添加一个元素"java"

    我们发现如果使用迭代器遍历，集合发生修改的话，报错了
    ConcurrentModificationException

 */
public class ListDemo2 {
    public static void main(String[] args) {
        List list1 = new ArrayList();

        list1.add("hello");
        list1.add("apple");
        list1.add("banana");
        list1.add("watermelon");
        list1.add("mango");
        list1.add("peach");
        list1.add("pear");

        System.out.println("list1: " + list1);
        System.out.println("======================================");
        //1、转数组遍历
//        Object[] objects = list1.toArray();
//        for(int i=0;i<objects.length;i++){
//            Object obj = objects[i];
//            String s = (String) obj;
//            if("mango".equals(s)){
//                list1.add("java");
//            }
//        }
//        System.out.println("list1: "+list1);
//        System.out.println("======================================");

        //2、使用迭代器遍历
//        Iterator iterator = list1.iterator();
//        while (iterator.hasNext()){
//            Object obj = iterator.next();
//            String s = (String) obj;
//            if("mango".equals(s)){
//               list1.add("java");
//            }
//        }
//        System.out.println("list1: "+list1);

        //使用List集合中特有的迭代器进行遍历比较，且使用它进行添加元素
        ListIterator listIterator = list1.listIterator();
        while (listIterator.hasNext()) {
            Object obj = listIterator.next();
            String s = (String) obj;
            if ("mango".equals(s)) {
                listIterator.add("java");
            }
        }
        System.out.println("list1: " + list1);


    }
}
